Internet telephony communications adapter for web browsers

ABSTRACT

A URL adapter for a Web browser that enables the integration of telephone numbers into a web browser&#39;s address line for parsing as a URI. The URL adapter bypasses traditional search hook functions to identify potential telephone numbers. The URL adapter has access to a name server for translating names entered into the browser into telephone numbers. The URL adapter can also parse Web pages to self-identify telephone numbers.

SUMMARY OF THE INVENTION

The present invention relates generally to the field of Internettelephony and more particularly to an adapter that enables theintegration of a telephone number into a World Wide Web browser as aUniform Resource Identifier.

BACKGROUND OF THE INVENTION

Traditional landline telephone services are circuit-switched, meaningevery call is transmitted over dedicated lines reserved for thatparticular call. Long distance calls are transmitted from the user'stelephone line over copper wires to a local telephone company's networkswitch, which then converts the call to a digital format and hands itoff to a long distance carrier. The long distance carrier then routesthe call over its network to the local telephone company that serves therecipient of the call. That carrier's local network switch then convertsthe call from the digital format to analog signals and connects the callto a line serving the recipient. As long as the call is ongoing, acircuit—a dedicated splice of bandwidth—remains open throughout allthree networks involved in transmitting the voice signals.

Unlike traditional landline telephone service, the Internet and similartypes of networks are packet switched data networks that use speciallyformatted packets to carry digital data. The basic networking protocolthat enables the communication of such packets across the interconnectednetworks forming the Internet, and between the computers with diversehardware architectures and various operating systems that form suchnetworks, is the Transmission Control Protocol/Internet Protocol(“TCP/IP”). While TCP/IP is an excellent protocol for accurately andefficiently transmitting most data packets over the Internet, it doesnot work as well with real-time data because delays can be introducedinto the output stream. The protocol used to transmit real-time voiceconversations over a data network using the Internet Protocol (“IP”) isthe Voice over Internet Protocol (“VoIP”). A VoIP enabled system isgenerally capable of handling a telephone call over the Internet in muchthe same manner as a TCP/IP enabled device is capable of handling astream of data over the Internet, but without significant delays betweenpackets.

In practice, an IP telephony user dials a toll-free number to connectthe user to an IP telephony gateway. The gateway acts as a bridgebetween the public telephone network and the public or private IPnetwork providing the service. Once connected to the gateway, the usergenerally dials (through a phone or computer controlled dialer) his orher account number (for billing purposes) and the destination telephonenumber of the call (although other arrangements which exclude the needto dial account numbers are also possible). The gateway receives theresulting telephone signals generated by the dialer on one side,converts them to IP packets, and outputs the packets to public orprivate IP networks for routing to the terminating user, and vice versa.A typical packet includes 10 to 30 milliseconds worth of conversation.Each packet is coded with the second party's telephone number, andcompressed for rapid transmission.

The packets travel the IP network, passing through routers, computersthat operate like switches by reading the addresses on each packet andassigning them to appropriate transmission lines, to arrive at a gatewaythat decompresses them and converts the packets back into a voicetransmission signal. The gateway then passes the call to the localtelephone network, which delivers it to the intended party.

In order to locate any specific point, or host, on the Internet, aunique IP address can be used for each host. A host can have a dedicatedIP address, as is frequently the case with large bandwidth accesscustomers, or a dynamically generated IP address, as is the case withany dial-up user. A number of users can also share a single IP addressand rely on intra-network devices to identify which users are placing orreceiving calls. Since IP addresses are numerical, and thereforedifficult to remember, or dynamic, and therefore constantly changing,and because many users are connected to different hosts all the time,many users are also assigned more permanent types of addresses, such asa Simple Mail Transport Protocol (“SMTP”) e-mail address or a VoiceProfile for Internet Mail (“VPIM”) voicemail system address. There aremany other types of addressing mechanisms available on the Internet.

So as to technically accommodate the growing number of telephone usersaround the world, as well as an ever-increasing interest in Internettelephony, the International Telecommunication Union (“ITU”) has adopteda number of additional standards or protocols. One such protocol isE.164, which provides a uniform means for identifying any telephonenumber in the world to any telephony user in the world. This protocolhas been widely adopted, along with other protocols, such as H.323 andH.450, which collectively operate to improve the quality andfunctionality of IP telephony. As explained in more detail below, forpurposes of the present invention the E. 164 protocol is the mostimportant.

(1) E.164. E.164 is the ITU Standardization Sector (“ITU-T”)recommendation for Global Switched Telephone Network (“GSTN”) numbering.E.164 is a sixteen digit numbering scheme that is presently capable ofproviding a unique telephone number for every subscriber in the world.The E.164 address provides a globally unique, language independentidentifier for resources on public telecommunication networks. E.164numbers are used to identify ordinary telephones, fax machines, pagers,and data modems.

(2) IP Address. An IP address, a basic component of the InternetProtocol, is a 32-bit number that identifies each unique host capable ofsending or receiving information across the Internet. An IP address hastwo parts: an identifier of a particular network on the Internet; and anidentifier of the particular host (the host can be a server or aworkstation) within that network. To locate a particular host, a usercould simply enter the IP address for that host into a World Wide Web(“WWW” or “Web”) browser. A Web browser is software that greatlysimplifies the use of the Internet. Web browsers allow computer users toeasily navigate the Internet by assisting in the selection, retrieval,and interaction with various resources on the Web.

(3) Uniform Resource Identifier (“URI”). The URI can be used to identifyany form of resource available over the Internet, such as a locator or aname, or both. The term Uniform Resource Locator (“URL”) refers to thesubset of URI that identify resources via a representation of theirprimary access mechanism (e.g., their network “location”), rather thanidentifying the resource by name or by some other attribute of thatresource. The term Uniform Resource Name (“URN”) refers to the subset ofURI that are required to remain globally unique and persistent even whenthe resource ceases to exist or becomes unavailable. Since most usershave a difficult time utilizing and remembering 32-bit numbers, such asthe IP address, the URL was developed. The URL is presently anASCII-based address that can lead or jump a user, by entering it into abrowser, to a file on any computer connected to the Internet anywhere inthe world. Efforts are presently underway to expand URLs beyond theASCII character set, so characters from languages other than Latin-basedlanguages, such as Kanji, could also be used. The standard conventionfor writing URLs is as follows: protocol to be used/host's name/folderor directory on host/ name of file or document requested. The HypertextTransfer Protocol (“HTTP”) is the protocol used to search host systemsfor displayable Web pages and related files. But other protocols, suchas the File Transfer Protocol (“FTP”), which represents the simplestmanner of exchanging files between computers on the Internet, as well asthe “news” and “mailto” protocols could also be used. The host name isusually expressed using the domain name system (“DNS”). Different DNSservers connected to the Internet maintain databases of host names (IPaddresses) that correspond to each domain name. Thus, when a user entersthe text <www.xyz.com> into a browser, the text is parsed into searchhook objects, a search engine is then used by the browser to search oneor more servers for files, news, locations, etc., matching the searchhook object, such as an IP address corresponding to that domain name. Ifa host, file or location can be located, the user is then directed orjumped accordingly. If no corresponding resource can be located usingany of the available protocols, the user is provided other information,such as a “file not found” message. E-mail messages and many otherdifferent types of messages sent or received by hosts must similarlyinclude IP addressing information in order operate.

(4) Hypertext Markup Language (“HTML”). HTML is the set of symbols,codes or words (the “markup”) that is inserted in a file intended fordisplay on a Web page. The markup tells a requesting browser how todisplay website pages, words and images for the user of that browser.Each individual markup code is referred to as an element. Some elementscome in pairs that indicate when some display effect is to begin andwhen it is to end.

(5) IP Telephony Terminal. This term is generally used to refer to a setof facilities for managing the delivery of voice information using theIP. As previously noted, VoIP is one means of delivering voice datausing the Internet Protocol.

While the preferred embodiment of the present invention relies onexisting E.164 numbering management systems, the operation of thepresent invention is not dependent on these systems. At the presenttime, the ITU Telecommunication Standards Board assigns country/servicecodes, and within a geographic area, a national or regional numberingadministration has the responsibility of managing the numbering plan forthe countries assigned to that area. To have the E.164 number allocationprocess managed by the existing numbering plan administrations canexpedite the allocation process, leading to an earlier deployment ofInternet telephony services.

BRIEF DESCRIPTION OF THE DRAWING

FIG. 1 is a diagram showing steps for converting a telephone number intoa URI.

FIG. 2 is a flow chart showing the process for converting a telephonenumber.

DETAILED DESCRIPTION OF THE INVENTION

Internet service providers are interested in IP telephony because IPtelephony increases the demand for access services and bandwidth.Consumers likewise are interested in IP telephony as it often meanslower costs for telephone service. Consumers have been reluctant to useIP telephony, however, because many of the applications facilitatingsuch services have been difficult to use, the quality of such serviceshas not been as high as standard telephony, and there have beensignificant limitations on who can be called using IP telephony. Thepresent invention simplifies the facilitation of such services byintegrating a modular software application (a “plug-in”) for utilizingIP telephony services into one or more presently available Web browsers,such as Internet Explorer, Netscape, Opera and Safari. The systemthereby enables users to place and receive calls directly from astandard Web browser on their computers in the same simplified mannerthat users currently navigate the Internet through Web pages.

The plug-in is an adapter that is downloaded by users to enhance theoperation of the Web browser currently installed on their personalcomputer. This adapter is referred to herein as a “URL adapter.” Inbasic operation, after the user has downloaded the URL adapter to hercomputer, the user would create an account on an publicly availableserver, called the E.164 name server. E.164 name servers, or E.164servers do not currently exist, but would be publicly available servers,probably operated by private service providers, that anyone on theInternet using a URL adapter could access. Once an account on the E.164name server is established, the user can create names (like a proxy ortoken) corresponding to telephone numbers (a “telephone URL”) for anytelephone number in the world, and store those names on the server forsubsequent access. To call a telephone URI, the user would simply enterthe corresponding name into the address bar of the browser in the samemanner that IP addresses or URLs are presently entered. Alternatively,the user could simply enter the numeric number sequence associated witha particular telephone number.

As further explained below in detail, when a name or proxy was enteredinto the address bar, the adapter would access the E.164 server andtranslate the name into a telephone number, which would then be dialedin accordance with the “dialto” protocol, a new protocol developed tofacilitate the present invention. As with other URL protocols, the usercould identify the dialto protocol in the same manner that otherprotocols are presently identified in the URI, for example by simplytyping <dialto://2125551212> in the address bar. A dialto protocolcompliant URL could also be used to create a hyperlink in the samemanner that other URLs are used to create hyperlinks today. As expressedin HTML from within a hyperlink on a web page, the telephone URLspecifying the dialto protocol, with a corresponding proxy, might appearas follows: <ahref=“dialto://2125551212”>NYCInformation</a>.

The dialto protocol does not require the subsequent specification of a“path” to another resource, like the http protocol, rather it isabsolute and the text is case sensitive. Some characters are considered“reserved” and cannot be used in the free text fields without thecharacters being recognized as special commands. Examples includecharacters such as “user-name” and “password.” Reserved characters canbe represented as: =“”|“:”|“?”|“;”|“=”

The dialto protocol syntax is formally described as follows: dialto-url= scheme “:” scheme-specific-part scheme = ‘dialto’ scheme-specific-part= subscriber-id[type-specifier] subscriber-id = [“+”] telephone numbercall-type = “voice” telephone number = 1*phonedigit[pause-character*(telephonedigit| dtmf-digit|pause-character)]telephonedigit = digit | “—” pause-character = “p” | “w” digit = “0” |“1” | “2” | “3” | “4” | “5” | dtmf-digit = “*”| “#” | “A” | “B” | “C” |“D”

The subscriber-id is the telephone number to be dialed. Thesubscriber-id should be written in international notation with countrycodes, as prescribed by the ITU-T, as well as with area codes.International telephone numbers must begin with a “+,” which indicatesthat the number begins with a country code. Telephone numbers that onlywork from inside a particular geographical area or from a certainnetwork are not required to start with a “+.” Hyphens may be used, butare assigned no meaning and are only present to aid in readability.

Users could also create telephone URLs via a vertical child orsub-window provided by the adapter within the main browser window,rather than in the browser's address bar. The child window could also beused to display names and corresponding telephone numbers for telephoneURLs and would readily enable a virtual E.164 name server, although sucha server could also be implemented within the browser address bar. TheE.164 virtual server is a function of the plug-in adapter on the localmachine. For example, when an E.164 address is entered directly into thebrowser address bar, it is intercepted by the plug-in adapter before thebrowser itself can process it, and translated locally into an E.164number by the plug-in adapter. If an E.164 number is entered into thechild window, no interception is required. In either case, if atelephone URL is entered into the child window or the address bar, theplug-in adapter will consult with the public E.164 name server forresolution and translation.

Telephone URL resolution is accomplished by translating the URI inaccordance with the dialto protocol. For example, if a Web browsersupported the dialto protocol by default, it would attempt toautomatically access the resource identified in the URL in the addressbar using that default protocol. If the browser was not structured tosupport the default dialto protocol, the browser would attempt toidentify the protocol from the URI, if listed. If the browser was stillunable to identify the protocol, it would create search hook objectsfrom the URI and proceed to search for those objects in the traditionalfashion. However, if the URL adapter is installed, rather than perform atraditional search to find an appropriate resource, the URL adapter willintercept the URI and first attempt to locate a corresponding telephonenumber in the E.164 server.

Using the search hook objects created by the browser, the URL adapterwill query each search hook object against the E.164 server until theaddress is translated or all of the search hook objects have beenqueried. If the URI cannot be translated in the E.164 server, it ispassed back to the browser for traditional processing. If the searchhook identifies an E.164 name server string from the system registry ofthe E.164 server, the string is passed to the browser as the final URLfor the browser jump.

A POST string, a string entered by the user that is stored in theregistry for a selected E.164 name server, may be used by the browser toattempt to access a URL. The string can also be used to form the finalURL string passed to the browser by the translate function: Thisfunction formats the E.164 name server string (from registry) and formsthe final URL to jump to. In such cases, the browser will not form anyfurther objects for performing address translation and presumes that theaddress has been interpreted correctly.

The E.164 name server can be set by the user by typing“about:nameserver” in the address bar. Alternatively, the search hookhas a property called “search” that can be used to direct a user to aWeb page whereby a particular E.164 name server can be selected from alist. This will also set the search property of the search hook objectto the selected E.164 name server string, which in turn puts this stringin the registry by calling its method “SetRegistryNameServer.” Asseveral different service providers can operate E.164 name servers, theuser can select a particular service provider for resolution andtranslation. Each provider selected by the user will have its own uniquequery string stored in the user's system registry. The user will then benotified by message, e.g., “Name Server Set:voiceglo” to identify theparticular service provider being utilized. The current value of theE.164 name server will be provided when the E.164 name server is loaded.

The telephone URL scheme is ultimately used to direct the user's VoIPagent to place a call using the telephone network. A VoIP agent is anyVoIP end point capable of placing and receiving telephone calls from thePublic Switched Telephone Network (“PSTN”). The network in question maybe a landline or mobile telephone network. If the telephone networkdifferentiates between, for example, voice and data calls, or if theuser agent has several different telecommunications systems at itsdisposal, it is possible to specify which kind of call (voice, fax ordata) is requested. It is also possible to give information about thecapabilities of the remote entity.

Another important feature of the present invention is that it is capableof parsing through standard Web pages to look for telephone numbers. Asshown in FIG. 1, the URL adapter uses the browser 102 to parse throughwebsites 100 using the parser module 104 to find telephone numbers. Theadapter uses several methodologies, including predictive and adaptivealgorithms, to identify telephone numbers.

In accordance with the present invention, the user's telephone numberand password (or PIN) are first presented to the decentralized telephoneswitching systems for authentication purposes via a direct link from theuser's desktop (web browser) and computer at which point the adapter hasenabled a fully-functional telephone capable of initiating or receivingcalls from other users of the Internet telephony as well as standardtelephone subscribers throughout the world.

As shown in FIG. 2, when documents on the Web are viewed using abrowser, the document can be searched for any textual data that couldpossibly contain telephone numbers 200, whether represented in normalwritten or printed notation. In such cases, the URL adapter scans eachpage character by character, line by line as it is being loaded andrendered by the browser, transforming each telephone number that isdetected and recognized into actual hyperlinks (URI) 202 that theembedded dialing module understands because an extension to the basicURI methods that the browser now understands has been implemented. Theresult of the parsing is the transformation of a sequence of telephonenumbers into a URI 202 that is understood by the adapters parsingmodule. Some of the matching rules embedded into the parser include:

-   -   NNN NNN NNNN    -   NNN.NNN.NNNN    -   (NNN) NNN NNNN    -   NNN-NNN-NNNN    -   (etc.)        The parser converts the detected telephone number to a        dialto://NNNNNNNNNN URI, then displays 204 it as a hyperlink on        the page that triggers dialing action 206 by an embedded dial        module for the specific protocol chosen.

Such a URI permits the user to click on the detected telephone number,which has now been transformed into a URI, and place a call using theappropriate dialing module of the invention for the specific protocolchosen. The embedded parser module enables the dialer module to becalled every time a user clicks on the new URI. When this occurs, thespecific protocol dialing function is performed because a dialer actionhas been assigned to the new URI that calls for a specific protocoldialer (SIP, IAX1, IAX2, MGCP, H323) module. This is accomplished fromthe desktop of the workstation through the web browser to thedistributed proxy server(s) and/or gateways (servers) via the chosenprotocol.

The separate modules of the URL adapter consist of those applicationsdevoted to handling specific voice protocols and supporting the mediachosen. Additional modules supporting directory lists, buddy lists,dial-pad, and video mail are integrated within the invention as well.

The URL adapter is driven from a distributed back-end consisting oftelephone switches, web servers, and databases that provideauthentication, routing calls to and from the PSTN, and from IPtelephony user to IP telephony user in a direct peer mode (this assumesboth users are also using the software and are connected to the sameswitching facilities). The invention, in conjunction with theaforementioned back-end systems, provides a method for an Internet userto communicate with any telephone whether it is connected via theInternet or connected via the standard PSTN.

1. A method for identifying a telephone number to a computer system forprocessing a telephone call over the Internet to a user assigned to saidtelephone number, comprising: receiving data entered into said computersystem by a caller through a web browser; searching said data for saidtelephone number or a proxy representing said telephone number;processing said telephone call to said telephone number if saidtelephone number is found in said data; and accessing a name server totranslate said proxy into said telephone number for return to saidcomputer system for processing said telephone call to said telephonenumber if said telephone number is not found in said data.